//package com.b2c.ftysys.view.application;
//
//import java.io.File;
//import java.io.FileInputStream;
//import java.io.FileNotFoundException;
//import java.io.FileOutputStream;
//import java.io.IOException;
//import java.io.InputStream;
//import java.io.OutputStream;
//import java.math.BigDecimal;
//import java.text.SimpleDateFormat;
//import java.util.ArrayList;
//import java.util.Arrays;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//import java.util.regex.Matcher;
//import java.util.regex.Pattern;
//
//import org.apache.poi.hssf.usermodel.HSSFCell;
//import org.apache.poi.hssf.usermodel.HSSFRichTextString;
//import org.apache.poi.hssf.usermodel.HSSFRow;
//import org.apache.poi.hssf.usermodel.HSSFSheet;
//import org.apache.poi.hssf.usermodel.HSSFWorkbook;
//import com.b2c.ftysys.domain.BaseWord;
//
//public class FileConvert {
//
//	public Map<String, BaseWord> getClothById() {
//		InputStream Idis;
//		Map<Integer, Integer> typeNum = new HashMap<Integer, Integer>();
//		Map<String, BaseWord> valueMap = new HashMap<String, BaseWord>();
//
//		File f = new File(
//				"D:\\Tomcat\\webapps\\baseWeb\\OrderExcel\\ID\\clothId.xls");
//
//		if (!f.isFile()) {
//			return null;
//		}
//
//		try {
//			Idis = new FileInputStream(f);
//			HSSFWorkbook idWord = new HSSFWorkbook(Idis);
//
//			HSSFSheet sheet = idWord.getSheetAt(0);
//
//			HSSFRow titleRow = sheet.getRow(sheet.getFirstRowNum());
//			int cellNum = titleRow.getLastCellNum();
//			int beginNum = titleRow.getFirstCellNum();
//			for (int i = beginNum; i < cellNum; i++) {
//				HSSFCell cell = titleRow.getCell(i);
//				String title = "";
//				if (cell != null) {
//					title = cell.getRichStringCellValue().toString();
//				} else
//					continue;
//
//				if (title.equals("商品编号")) {
//					typeNum.put(0, i);
//				} else if (title.equals("商品价格")) {
//					typeNum.put(1, i);
//				} else if (title.equals("商品面料")) {
//					typeNum.put(2, i);
//				} else
//					continue;
//			}
//
//			System.out.println("从ID文档中抓取商品ID号:");
//			for (int i = sheet.getFirstRowNum() + 1; i <= sheet.getLastRowNum(); i++) {
//				HSSFRow row = sheet.getRow(i);
//
//				if (row == null)
//					continue;
//
//				BaseWord word = new BaseWord();
//
//				for (int key = 0; key < 3; key++) {
//
//					HSSFCell cell = row.getCell(typeNum.get(key));
//
//					if (cell == null)
//						continue;
//
//					int typeCode = cell.getCellType();
//					switch (key) {
//					case 0:
//						if (typeCode == 1) {
//							word.setGoodsID((cell.getRichStringCellValue()
//									.toString()));
//						} else if (typeCode == 0) {
//							String goodsId = String.valueOf(cell
//									.getNumericCellValue());
//							if (goodsId.indexOf(".") >= 0)
//								word.setGoodsID(goodsId.substring(0, goodsId
//										.indexOf(".")));
//							else {
//								word.setGoodsID(goodsId);
//							}
//						}
//						;
//						break;
//					case 1:
//						if (typeCode == 0) {
//							word.setPrice(BigDecimal.valueOf(cell.getNumericCellValue()));
//						}
//						;
//						break;
//					case 2:
//						if (typeCode == 1 && word.getGoodsID() != null) {
//							word.setCloth(cell.getRichStringCellValue()
//									.getString());
//							System.out.println(cell.getRichStringCellValue()
//									.getString());
//						}
//						;
//						break;
//					}
//				}
//				if (word.getGoodsID() != null
//						&& !valueMap.containsKey(word.getGoodsID())) {
//					System.out.println(word.getGoodsID() + "号商品的价格为："
//							+ word.getPrice());
//					valueMap.put(word.getGoodsID(), word);
//				}
//			}
//		} catch (FileNotFoundException ep) {
//			ep.printStackTrace();
//		} catch (IOException e) {
//			e.printStackTrace();
//		}
//
//		return valueMap;
//
//	}
//
//	public List<Map<String, Object>> readExcelByPOI(String sourcefile) {
//		// SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
//		List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>();
//		Map<String, Object> dataMap = null;
//		// List<String> titleKey = new ArrayList<String>();
//		Map<String, Integer> titleMap = new HashMap<String, Integer>();
//
//		try {
//			InputStream is = new FileInputStream(sourcefile);
//			HSSFWorkbook rwb = new HSSFWorkbook(is);
//			HSSFSheet sheet = rwb.getSheetAt(0);
//			HSSFRow titleRow = sheet.getRow(0);
//			for (int j = titleRow.getFirstCellNum(); j < titleRow
//					.getLastCellNum(); j++) {
//				HSSFCell titleCell = titleRow.getCell(j);
//				if (titleCell == null)
//					continue;
//				HSSFRichTextString cellValue = titleCell
//						.getRichStringCellValue();
//				if (cellValue == null)
//					continue;
//				String value = cellValue.toString().trim();
//				// titleKey.add(value);
//				titleMap.put(value, j);
//			}
//			int typeCode = -1;
//			for (int i = sheet.getFirstRowNum() + 1; i <= sheet.getLastRowNum(); i++) {
//				HSSFRow row = sheet.getRow(i);
//				dataMap = new HashMap<String, Object>();// row is the key ->
//				// value Map
//
//				for (String titleValue : titleMap.keySet()) {
//					HSSFCell cell = null;
//					try {
//						cell = row.getCell(titleMap.get(titleValue));
//						typeCode = cell.getCellType();
//					} catch (Exception e) {
//						System.out.println("空");
//					}
//
//					// CELL_TYPE_NUMERIC = 0;
//					// CELL_TYPE_STRING = 1;
//					// CELL_TYPE_FORMULA = 2;
//					// CELL_TYPE_BLANK = 3;
//					// CELL_TYPE_BOOLEAN = 4;
//					// CELL_TYPE_ERROR = 5;
//					// if(typeCode==)
//					if (cell == null)
//						continue;
//
//					Object obj = null;
//					// System.out.print(typeCode);
//					if (typeCode == 0) {
//						// System.out.println(titleValue + "--->"
//						// + cell.getNumericCellValue()+"====");
//						obj = cell.getNumericCellValue();
//					} else if (typeCode == 1) {
//						// System.out.println(titleValue + "--->"
//						// + cell.getRichStringCellValue()+"====");
//						obj = cell.getRichStringCellValue();
//					} else if (typeCode == 2) {
//						// System.out.println(titleValue + "--->"
//						// + cell.getCellFormula()+"====");
//						obj = cell.getCellFormula();
//					} else if (typeCode == 3) {
//						// System.out.println(titleValue + "--->"
//						// + cell.getDateCellValue()+"====");
//						obj = cell.getBooleanCellValue();
//					} else if (typeCode == 4) {
//						// System.out.println(titleValue + "--->"
//						// + cell.getBooleanCellValue()+"====");
//						obj = cell.getBooleanCellValue();
//					} else if (typeCode == 4) {
//						// System.out.println(titleValue + "--->"
//						// + cell.getErrorCellValue()+"====");
//						obj = cell.getErrorCellValue();
//					} else {
//						System.out.println(titleValue + "--->" + typeCode
//								+ "====");
//					}
//					dataMap.put(titleValue, obj);
//				}
//
//				resultList.add(dataMap);
//			}
//
//		} catch (FileNotFoundException e) {
//			e.printStackTrace();
//		} catch (IOException e) {
//			e.printStackTrace();
//		}
//
//		return resultList;
//	}
//
//	public List<BaseWord> readExcelByPOI(String sourcefile, String sheetName) {
//
//		SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
//		List<BaseWord> resultList = new ArrayList<BaseWord>();
//
//		// System.out.println("总数量");
//		int allNum = 0;
//
//		try {
//			InputStream is = new FileInputStream(sourcefile);
//
//			Map<String, BaseWord> idValue = getClothById();
//			// 创建HSSFWorkbook对象
//			HSSFWorkbook rwb = new HSSFWorkbook(is);
//			HSSFSheet sheet;
//			if (rwb.getSheetIndex(sheetName) >= 0) {
//				sheet = rwb.getSheet(sheetName);
//			} else {
//				sheet = rwb.getSheetAt(0);
//			}
//
//			int typeCode = -1;
//			HSSFRow titleRow = sheet.getRow(0);
//
//			System.out.println(titleRow);
//			Map<Integer, Integer> titleMap = new HashMap<Integer, Integer>();
//
//			for (int j = titleRow.getFirstCellNum(); j < titleRow
//					.getLastCellNum(); j++) {
//
//				HSSFCell titleCell = titleRow.getCell(j);
//
//				if (titleCell == null)
//					continue;
//				HSSFRichTextString cellValue = titleCell
//						.getRichStringCellValue();
//
//				if (cellValue == null)
//					continue;
//				String value = cellValue.toString().trim();
//				// System.out.println("Excel里的属性列名称:" + value);
//
//				if ("采购日期".equals(value)) {
//					// System.out.println("抓取到:" + value);
//					titleMap.put(0, j);
//				} else if ("采购单号".equals(value)) {
//					// System.out.println("抓取到:" + value);
//					titleMap.put(1, j);
//				} else if ("条码".equals(value)) {
//					// System.out.println("抓取到:" + value);
//					titleMap.put(2, j);
//				} else if ("SKU号".equals(value)) {
//					// System.out.println("抓取到:" + value);
//					titleMap.put(3, j);
//				} else if ("产品属性".equals(value)) {
//					// System.out.println("抓取到:" + value);
//					titleMap.put(4, j);
//				} else if ("供货商编号".equals(value) || "供应商编号".equals(value)) {
//					// System.out.println("抓取到:" + value);
//					titleMap.put(5, j);
//				} else if ("数量".equals(value)) {
//					// System.out.println("抓取到:" + value);
//					titleMap.put(6, j);
//				} else if ("发货日期".equals(value)) {
//					// System.out.println("抓取到:" + value);
//					titleMap.put(7, j);
//				} else if ("采购备注".equals(value)) {
//					// System.out.println("抓取到:" + value);
//					titleMap.put(8, j);
//				} else
//					continue;
//			}
//			for (int i = sheet.getFirstRowNum() + 1; i <= sheet.getLastRowNum(); i++) {
//				HSSFRow row = sheet.getRow(i);
//				BaseWord word = new BaseWord();
//				for (int j = 0; j < titleMap.size(); j++) {
//					// System.out.println(titleMap.get(j));
//					HSSFCell cell = null;
//					try {
//						cell = row.getCell(titleMap.get(j));
//						// System.out.println(cell);
//						typeCode = cell.getCellType();
//						// System.out.println(typeCode);
//					} catch (Exception e) {
//						typeCode = -1;
//						System.out.println("空");
//					}
//					if (cell == null)
//						continue;
//					switch (j) {
//					case 0:
//						try {
//							if (typeCode == 1)
//								word.setStockDate(cell.getRichStringCellValue()
//										.getString());
//							else {
//								// System.out.println(cell.getDateCellValue());
//								word.setStockDate(f.format(cell
//										.getDateCellValue()));
//								// word.setDeliveryDate(f.format(cell.getDateCellValue()));
//							}
//						} catch (Exception e) {
//
//						}
//
//						;
//						break;
//					case 1:
//						if (typeCode == 0) {
//							String stockId = String.valueOf(cell
//									.getNumericCellValue());
//							if (stockId.indexOf(".") >= 0)
//								word.setStockID(stockId.substring(0, stockId
//										.indexOf(".")));
//							else
//								word.setStockID(stockId);
//						} else {
//							word.setStockID(cell.getRichStringCellValue()
//									.toString());
//						}
//
//						;
//						break;
//					case 2:
//						if (typeCode == 1)
//							word.setOrderID(cell.getRichStringCellValue()
//									.toString());
//						;
//						break;
//					case 3:
//						if (typeCode == 1) {
//							word.setGoodsID(cell.getRichStringCellValue()
//									.toString());
//
//							if (word.getGoodsID() != null) {
//								String goodsId = Integer.parseInt(word
//										.getGoodsID().substring(1, 8))
//										+ "";
//								System.out.println(goodsId);
//								word.setPicNames(getPicNum(goodsId));
//								if (idValue != null
//										&& idValue.containsKey(goodsId)) {
//									System.out.println(word.getGoodsID()
//											+ "号商品的价格为：" + word.getPrice());
//									word.setPrice(idValue.get(goodsId)
//											.getPrice());
//									word.setCloth(idValue.get(goodsId)
//											.getCloth());
//								}
//							}
//						}
//						;
//						break;
//					case 4:
//						if (typeCode == 1)
//							word.setDescription(cell.getRichStringCellValue()
//									.getString());
//						;
//						break;
//					case 5:
//						if (typeCode == 1)
//							word.setSupplyID(cell.getRichStringCellValue()
//									.getString());
//						;
//						break;
//					case 6:
//						if (typeCode == 0) {
//							int num = (int) cell.getNumericCellValue();
//							word.setNum(num);
//							allNum += num;
//						} else if (typeCode == 1) {
//							try {
//								int n = Integer.parseInt(cell
//										.getRichStringCellValue().getString());
//								word.setNum(n);
//								allNum += n;
//							} catch (Exception e) {
//							}
//						}
//						;
//						break;
//					case 7:
//						if (typeCode == 1)
//							word.setDeliveryDate(cell.getRichStringCellValue()
//									.getString());
//						else {
//							word.setDeliveryDate(f.format(cell
//									.getDateCellValue()));
//						}
//						;
//						break;
//					case 8:
//						if (typeCode == 1)
//							word.setRemark(cell.getRichStringCellValue()
//									.getString());
//						;
//						break;
//					default:
//						break;
//					}
//				}
//				if (word.getOrderID() != null || word.getGoodsID() != null)
//					resultList.add(word);
//			}
//
//			BaseWord word = new BaseWord();
//			System.out.println("总数:" + allNum);
//			word.setNum(allNum);
//			resultList.add(word);
//
//			return resultList;
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//
//		return resultList;
//	}
//
//	public void createExcelFile(List<String> titleList,
//			List<Map<String, Object>> dataList, String fileName,
//			String sheetName) {
//		// 创建HSSFWorkbook对象
//		HSSFWorkbook wb = new HSSFWorkbook();
//
//		// 创建HSSFSheet对象
//		HSSFSheet sheet = wb.createSheet(sheetName);
//		HSSFRow row = sheet.createRow(0);
//
//		// 创建Excel属性名
//		for (int i = 0; i < titleList.size(); i++) {
//			// -----------------创建HSSFCell对象
//			HSSFCell cell = row.createCell(i);
//			cell.setCellValue(new HSSFRichTextString(titleList.get(i)));
//		}
//
//		int rowNum = 1;
//		for (Map<String, Object> dataMap : dataList) {
//			row = sheet.createRow(rowNum);
//			for (int i = 0; i < titleList.size(); i++) {
//				// -----------------创建HSSFCell对象
//				HSSFCell cell = row.createCell(i);
//				Object cellValue = dataMap.get(titleList.get(i));
//				cell.setCellValue(new HSSFRichTextString(String
//						.valueOf(cellValue)));
//			}
//			rowNum++;
//		}
//		
//		// 定义你需要的输出流
//		OutputStream out;
//		try {
//			out = new FileOutputStream(
//					"D:\\tomcat\\webapps\\baseWeb\\OrderExcel\\" + fileName
//							+ ".xls");
//		// 输出Excel
//		wb.write(out);
//		out.close();
//		} catch (FileNotFoundException e) {
//			e.printStackTrace();
//		} catch (IOException e) {
//			e.printStackTrace();
//		}
//	}
//
//	public void createExcelByPOI(List<BaseWord> dataList, String fileName)
//			throws IOException {
//
//		// 创建HSSFWorkbook对象
//		HSSFWorkbook wb = new HSSFWorkbook();
//
//		// 创建HSSFSheet对象
//		HSSFSheet sheet = wb.createSheet("订单表");
//
//		// -----------------创建HSSFRow对象
//		HSSFRow row = sheet.createRow(0);
//
//		// -----------------创建HSSFCell对象
//		HSSFCell cell = row.createCell(0);
//
//		// 设置单元格的值
//		cell.setCellValue(new HSSFRichTextString("采购日期"));
//
//		// -----------------创建HSSFCell对象
//		cell = row.createCell(1);
//		// 设置单元格的值
//		cell.setCellValue(new HSSFRichTextString("采购单号"));
//
//		// -----------------创建HSSFCell对象
//		cell = row.createCell(2);
//		// 设置单元格的值
//		cell.setCellValue(new HSSFRichTextString("订单号"));
//
//		// -----------------创建HSSFCell对象
//		cell = row.createCell(3);
//		// 设置单元格的值
//		cell.setCellValue(new HSSFRichTextString("商品编号"));
//
//		// -----------------创建HSSFCell对象
//		cell = row.createCell(4);
//		// 设置单元格的值
//		cell.setCellValue(new HSSFRichTextString("商品属性"));
//
//		// -----------------创建HSSFCell对象
//		cell = row.createCell(5);
//		// 设置单元格的值
//		cell.setCellValue(new HSSFRichTextString("供应商编号"));
//
//		// -----------------创建HSSFCell对象
//		cell = row.createCell(6);
//		// 设置单元格的值
//		cell.setCellValue(new HSSFRichTextString("数量"));
//
//		// -----------------创建HSSFCell对象
//		cell = row.createCell(7);
//		// 设置单元格的值
//		cell.setCellValue(new HSSFRichTextString("交货日期"));
//
//		// -----------------创建HSSFCell对象
//		cell = row.createCell(8);
//		// 设置单元格的值
//		cell.setCellValue(new HSSFRichTextString("采购备注"));
//
//		int i = 1;
//		for (BaseWord word : dataList) {
//
//			row = sheet.createRow(i);
//			// 设置单元格的值
//			row.createCell(0).setCellValue(
//					new HSSFRichTextString(word.getStockDate()));
//			row.createCell(1).setCellValue(
//					new HSSFRichTextString(word.getStockID()));
//			row.createCell(2).setCellValue(
//					new HSSFRichTextString(word.getOrderID()));
//			row.createCell(3).setCellValue(
//					new HSSFRichTextString(word.getGoodsID()));
//			row.createCell(4).setCellValue(
//					new HSSFRichTextString(word.getDescription()));
//			row.createCell(5).setCellValue(
//					new HSSFRichTextString(word.getSupplyID()));
//			row.createCell(6).setCellValue(word.getNum());
//			row.createCell(7).setCellValue(
//					new HSSFRichTextString(word.getDeliveryDate()));
//			row.createCell(8).setCellValue(
//					new HSSFRichTextString(word.getRemark()));
//
//			i++;
//		}
//		// 定义你需要的输出流
//		OutputStream out = new FileOutputStream(
//				"D:\\tomcat\\webapps\\baseWeb\\OrderExcel\\" + fileName
//						+ ".xls");
//		// 输出Excel
//		wb.write(out);
//		out.close();
//
//	}
//
//	public String[] listPath() {
//		String[] list = null;
//		File path = new File("D:\\Tomcat\\webapps\\baseWeb\\img");
//
//		if (!path.isDirectory())
//			return list;
//		else
//			list = path.list();
//
//		Arrays.sort(list);
//
//		return list;
//	}
//
//	public List<String> getPicNum(String dicName) {
//		Pattern p = Pattern.compile(dicName + "-\\d.*");
//		Matcher m;
//
//		List<String> picNames = new ArrayList<String>();
//		if (listPath() != null) {
//			for (String fileName : listPath()) {
//				m = p.matcher(fileName);
//				if (m.matches()) {
//					picNames.add(fileName);
//				}
//			}
//		}
//		return picNames;
//	}
//
//	public static void main(String[] args) {
//		FileConvert convert = new FileConvert();
//
//		String sourcefile = "d:\\test.xls";
//		convert.readExcelByPOI(sourcefile);
//	}
//}
